#include "My_CortexM3_Def.h"
#include "PortInit.h" 
#include "PortInit2.h"

#define GPIO_KEY1_PIN GPIO_PIN_0
#define GPIO_KEY2_PIN GPIO_PIN_1

int main(void)
{
  RCC_APB2ENR |= RCC_APB2PERIPH_GPIOA; 
  RCC_APB2ENR |= RCC_APB2PERIPH_GPIOB; 
  RCC_APB2ENR |= RCC_APB2PERIPH_GPIOC; 
  
  Port_Init( GPIOA ,
             GPIO_KEY1_PIN | GPIO_KEY2_PIN ,
             GPIO_Input_Mode ,
             1 );

  // turn off LED
  GPIOB_BSRR |= GPIO_LED1_PIN;
  GPIOB_BSRR |= GPIO_LED2_PIN;
  GPIOB_BSRR |= GPIO_LED3_PIN;  
  
  Port_Init( GPIOB , 
             GPIO_LED1_PIN |  GPIO_LED2_PIN | GPIO_LED3_PIN , 
             GPIO_Speed_50MHz, 
             0x00);
  
  while(1) { 
    
    if( (GPIOA->IDR & GPIO_KEY1_PIN) ) {   // Input Data Register
       GPIOB_BRR |= GPIO_LED1_PIN;
    }
    else {
       GPIOB_BSRR |= GPIO_LED1_PIN;
    }
    if( (GPIOA->IDR & GPIO_KEY2_PIN) ) {
       GPIOB_BRR |= GPIO_LED3_PIN;
    }
    else {
       GPIOB_BSRR |= GPIO_LED3_PIN;
    }

  }
  
  
  /*
  Port_Init( GPIOC , 
             GPIO_7_SEG_A | GPIO_7_SEG_B | GPIO_7_SEG_C | 
             GPIO_7_SEG_D | GPIO_7_SEG_E | GPIO_7_SEG_F |
             GPIO_7_SEG_G | GPIO_7_SEG_DP| GPIO_7_SEG_PW, 
             GPIO_Speed_50MHz, 
             0x00);

  Port_Init( GPIOB , 
             GPIO_LED1_PIN | GPIO_LED3_PIN , 
             GPIO_Speed_50MHz, 
             0x00);
  
  while(1) {
    for(int i=0;i<=9;i++) {
        PtrNum2PortC(i);
        if(i%2) GPIOC_BRR |= GPIO_7_SEG_DP;
        else    GPIOC_BSRR |= GPIO_7_SEG_DP;
        delaycnt();  
    }
  }
  */
  
  
  
}
